<template>
  <div class="common-seach-wrap" v-auth="'/activity/assemble/index'">
    <listIndex v-if="activeName=='list'"></listIndex>
    <myIndex v-if="activeName=='my'"></myIndex>
  </div>
</template>
<script>
import { reactive, toRefs, onBeforeUnmount, defineComponent } from "vue";
import { useUserStore } from "@/store";
import listIndex from "./list.vue";
import myIndex from "./my.vue";
export default defineComponent({
  components:{
    listIndex,
    myIndex,
  },
  setup() {
    const { bus_emit, bus_off, bus_on } = useUserStore();
    const state = reactive({
        bus_emit,
        bus_off,
        bus_on,
        /*是否加载完成*/
        loading: true,
        form: {},
        /*参数*/
        param: {},
        /*当前选中*/
        activeName: '',
        /*切换数组原始数据*/
        sourceList: [
        {
            key: 'list',
            value: '活动列表',
            path: '/activity/bargain/list'
          },
          {
            key: 'my',
            value: '参与记录',
            path: '/activity/bargain/my'
          }
        ],
        /*权限筛选后的数据*/
        tabList:[],
    });
    return {
      ...toRefs(state),
    };
  },
  created(){
    this.tabList = this.authFilter();
    if(this.tabList.length>0){
      this.activeName = this.tabList[0].key;
    }
    if (this.$route.query.type != null) {
      this.activeName = this.$route.query.type;
    }
    /*监听传插件的值*/
    this.bus_on('activeValue', res =>
    {
        this.activeName = res;
    });
    //发送类别切换
    let params = {
        active: this.activeName,
        list: this.tabList,
        tab_type:'bargain'
    }
    this.bus_emit('tabData', params);
  },
  beforeUnmount () {
      //发送类别切换
      this.bus_emit('tabData', {active: null,tab_type:'bargain', list: []});
      this.bus_off('activeValue');
  },
  methods: {
    /*权限过滤*/
    authFilter(){
        let list=[];
        for(let i=0;i<this.sourceList.length;i++){
          let item=this.sourceList[i];
          if(this.$filter.isAuth(item.path)){
            list.push(item);
          }
        }
        return list;
      },
  },
});
</script>
<style lang="scss"></style>
